package com.linshengjian.snowball.core;

import com.linshengjian.snowball.core.exception.DataEventException;

/**
 * 数据操作的监听器
 */
public interface IDataEvent<T> {

    /**
     * 保存数据之前
     * @param t
     */
    default void saveBefore(T t) throws DataEventException {}

    /**
     * 保存数据之后
     * @param t
     */
    default void saveAfter(T t) throws DataEventException {}

    /**
     * 删除数据之前
     * @param t
     */
    default void deleteBefore(T t) throws DataEventException {}

    /**
     * 删除数据之后
     * @param t
     */
    default void deleteAfter(T t) throws DataEventException {}
}
